The Common Scrambling Algorithm (CSA) is used to encrypt digital video broadcasts, primarily to prevent unauthorized (i.e., unpaid) viewing of subscription video content.
CSA may be implemented in either hardware or software. Either way, it is desirable that encryption and decryption occur fast enough to provide an uninterrupted viewing experience to maintain subscriber satisfaction. This is not difficult with appropriate software on a suitable processor, nor on dedicated hardware. However, when implemented in a programmable integrated circuit device, and particularly in a programmable logic device such as an FPGA, it has been observed that the hardware may be too slow for uninterrupted viewing unless a large number of parallel devices is provided.